package com.huang.LockSupport;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.LockSupport;

/*
*           不需要再加锁情况下才能 等待和唤醒
*           可以先给通信证  然后在等待的时侯 拿到刚才通行证  最大通行证数量为1  再给也是1  而等待可以设置多次等待
*
*
* */
public class test3 {
    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            System.out.println("s前");
            LockSupport.park();   // 有三个门
            LockSupport.park();
            LockSupport.park();
            System.out.println("s后");

        });
             t1.start();
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        new Thread(()->{
            System.out.println("u前");
            LockSupport.unpark( t1);  //相当于一把钥匙
            LockSupport.unpark( t1);
            LockSupport.unpark( t1);
            System.out.println("u后");

        }).start();
    }
    }

